
# 字典

"""
1. 概念 ： 是以键值对形式存放数据类型的容器 ，存放的数据类型是无序的 ，所以它不能进行通过索引获取 。
2. 定义 ：
    变量名 = {} or dict()
    变量名 = {key1:value1,key2:value2,...}
3. 说明 ：
    (1) . 它可以存放任意的键值对，值是任意的数据类型 。
    (2) . 它也是可变化对象 ，支持增删改查
"""

# 1. 定义字典
dct1 = {}
dct2 = dict()
dct3 = {'aaa':1,'b':2,'3':3,5:'hello'}
print(dct1)
print(dct2)
print(dct3)

# 2. 通过key去获取对应的值 dict[key] , 要求key必须存在 ，否则会报错。
print("获取健名b的值:",dct3['b'])
print("获取健名5的值:",dct3[5])
# print("获取健名x的值:",dct3['x'])

# 3. 通过key去修改值 ，dict[key] = new_value  ,这里的key是存在的
dct3['3'] = 'abc'
print(dct3)

# 4. 通过key去新增键值对， dict[key] = new_value  ,这里的key是不存在的
dct3['x'] = '132323'
print(dct3)

# 5. 字典中的方法
"""
get(key)        : 获取字典中key对应的值
key in dict     : key是否在字典中
items()         : 以列表的形式返回(键,值)数据
keys()          : 返回所有的键名
values()        : 返回所有的值
pop(key)        : 删除对应的键值对
update(dict1)   : 将字典dict1的数据更新到当前字典中。
"""
print("=============================")
dct4 = {'python':1,'java':2,'c':3,'javascript':4,'c++':'5','go':6}
print("获取键名为go的值:",dct4.get('go'))
print("获取键名为php的值:",dct4.get('php'))

print("键名go是否在字典中:",'go' in dct4)
print("键名php是否在字典中:",'php' in dct4)

print(dct4.items())

for key,value in dct4.items():
    print(key,"=============",value)


for key in dct4.keys():
    print("key:",key)

for value in dct4.values():
    print("value:",value)

print("删除键名为:c++")
dct4.pop('c++')
print(dct4)

dct5 = {'php':7,'ruby':8,'shell':9}
dct5.update(dct4)
print(dct5)